3.4 [Defines] Section

This is an optional section. This section, if present, must be the first section following comment blocks at the beginning of the file.

Summary

This section describes the defines section content in the FDF files. This file can be created by a developer and is an input to the EDK II build tool parsing utilities. Elements may appear in any order within this section.

The code for this version of the FDF specification is "0x0001001C". New versions of this specification must increment the minor (001C) portion of the specification code for backward-compatible changes, and increment the major specification number for non-backward-compatible changes.

This revision of the specification adds new features. Any FDF file that uses these new features must use the value 0x0001001C in the FDF_SPECIFICATION statement. Older FDF files that do not use these new feature do not need to update the value.

Conditional statements may be used anywhere within this section.

Prototype

<Defines>    ::= "[Defines]" <EOL>
                 [<TS> "FDF_SPECIFICATION" <Eq> <SpecVer> <EOL>]
                 [<TS> "FDF_VERSION" <Eq> <DecimalVersion> <EOL>] <DefStmts>*
<DefStmts>   ::= {<MacroDefinition>} {<SetStmts>} {<IncludeStatement>}
<UiNameType> ::= <AsciiString>
<SpecVer>    ::= {<HexVersion>} {(0-9)+ "." (0-9)+}
<SetStmts>   ::= <TS> "SET" <MTS> {<PcdName>} {<PcdFieldName>} <Eq> [<VALUE>] <EOL>
<VALUE>      ::= {<Number>} {<Boolean>} {<GUID>} {<CArray>}
                 {<CString>} {<UnicodeString>} {<Expression>}

Parameters

Expression

Refer to the EDK II Expression Syntax Specification for more information.

FDF_VERSION

The version number for this flash definition; the value is not used by build tools, but the version element is provided for user tracking capabilities that may be used by other user interface tools.

FDF_SPECIFICATION

For this specification, the version value is 0x0001001C. Tools that process this version of the FDF file can successfully process earlier versions of the FDF files (this is a backward compatible update). If an FDF file with an earlier version of the FDF_SPECIFICATION is modified to use a feature added in the 1.28 version of this specification must be updated to 0x0001001C. There is no requirement to change existing entries if no other content changes. This value may also be specified as decimal value, such as 1.28.

PcdNames

PCDs defined in this section take precedence over PCD values specified in other meta-data files. Note that PCDs defined via the SET statements in sub-sections of the document can override the values set here as well as in other EDK II meta-data files.

Example

[Defines]
  FDF_SPECIFICATION                          = 0x0001001C
  DEFINE BIG_STUFF                           = False
  SET gEfiMyPlatformTokenSpaceGuid.MyUsbFlag = True